An Abstract Machine for Curry and Its Concurrent Implementation in Java

نویسندگان

  • Michael Hanus
  • Ramin Sadre
چکیده

Curry is a multi-paradigm declarative language aiming to amalgamate functional, logic, and concurrent programming paradigms. Curry combines in a seamless way features from functional programming and (concurrent) logic programming. Curry’s operational semantics is based on the combination of lazy reduction of expressions together with a possibly non-deterministic binding of free variables occurring in expressions. Moreover, (equational) constraints can be executed concurrently which provides for passive constraints and concurrent computation threads that are synchronized on logical variables. This paper describes in an object-oriented style an abstract machine for executing Curry programs. The machine is designed to provide a link for compiling Curry programs into Java but it can also be a basis for implementations of Curry in other (object-oriented) languages. The main emphasis of the Java-based implementation is the exploitation of Java threads to implement the concurrent and nondeterministic features of Curry.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

A Concurrent Implementation of Curry in Java

Curry is a multi-paradigm declarative language aiming to amalgamate functional, logic, and concurrent programming paradigms. Curry combines in a seamless way features from functional programming and (concurrent) logic programming. Curry's operational semantics is based on the combination of lazy reduction of expressions together with a possibly non-deterministic binding of free variables occurr...

متن کامل

Safe Ambients: Abstract machine and distributed implementation

The abstract machine PAN for a distributed implementation of an ambient calculus is presented. PAN is different from, and simpler than, previous implementations of ambient-like calculi, mainly because: the underlying calculus is typed Safe Ambients (SA) rather than the untyped Ambient calculus and therefore does not present certain forms of interferences among processes (the grave interferences...

متن کامل

An Implementation Model of the Typed -calculus Based on Linear Chemical Abstract Machine

Abramsky's Linear Chemical Abstract Machine is a term calculus which corresponds to Linear Logic, via the Curry-Howard iso-morphism. We show that the typed-calculus is embedded into Linear Chemical Abstract Machine by Girard's embedding of Intuitionistic Logic into Linear Logic. Then we extend our result to a simple functional programming language obtained from the typed-calculus by adding cons...

متن کامل

An Eecient Abstract Machine for Curry

The functional logic programming language Curry integrates features from functional logic and concurrent programming It combines lazy evaluation higher order functions logic variables partial data struc tures built in search and the concurrent evaluation of equational con straints Curry amalgamates the most important operational principles developed in the area of integrated functional logic la...

متن کامل

Computational Interpretations of Linear Logic

We study Girard's Linear Logic from the point of view of giving a concrete computational interpretation of the logic, based on the Curry-Howard isomorphism. In the case of Intuitionistic Linear Logic, this leads to a reenement of the lambda calculus, giving ner control over order of evaluation and storage allocation, while maintaining the logical content of programs as proofs, and computation a...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:
  • Journal of Functional and Logic Programming

دوره 1999  شماره 

صفحات  -

تاریخ انتشار 1999